package demo.jdk.features.jdk8;

import org.junit.Test;

import java.io.IOException;
import java.nio.file.FileVisitOption;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;

/**
 * @author Ranchoz  2018/9/10 8:36
 **/
public class UtilDemo {

	int[] data = {4, 12, 1, 3, 5, 7, 9};

	/**
	 * 数据排序
	 */
	@Test
	public void parallelSort() {
		Arrays.parallelSort(data);
		System.out.println(Arrays.toString(data));  // [1, 3, 4, 5, 7, 9, 12]
	}

	/**
	 * 依次将数据的茜茜元素与前一个元素求和，获取的值作为当前元素的新值
	 */
	@Test
	public void testCollectPrallel() {
		Arrays.parallelPrefix(data, Integer::sum);
		System.out.println(Arrays.toString(data));  //   [4, 16, 17, 20, 25, 32, 41]
	}

	/**
	 * 获取指定目录下的文件夹，并打印
	 *
	 * @throws IOException
	 */
	@Test
	public void list() throws IOException {
		Files.list(Paths.get(".")).filter(Files::isDirectory).forEach(System.out::println);
	}

	/**
	 * 遍历指定文件夹下的子目录 + 子文件
	 *
	 * @throws IOException
	 */
	@Test
	public void walk() throws IOException {
		Files.walk(Paths.get("."), FileVisitOption.FOLLOW_LINKS).forEach(System.out::println);
	}
}
